home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / clean.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  35KB  |  1,642 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "clean.h"
  9. T37 M37=NULL;
  10. T38 M38={NULL};
  11. T10 M10=NULL;
  12. T35 M35={NULL,NULL,NULL};
  13. T28 M28={0};
  14. T23 M23={NULL,0,0};
  15. T7 M7={NULL,0,0};
  16. T36 M36={NULL,0,0,0};
  17. T33 M33=NULL;
  18. T30 M30={0,NULL,0,0};
  19. T29 M29=0;
  20.  
  21.  
  22. T7*se_ms(int c,char*e){
  23. T7*s=malloc(sizeof(T7));
  24. s->_count=c;
  25. s->_capacity=c+1;
  26. s->_storage=malloc(c+2);
  27. memcpy(s->_storage,e,c);
  28. return s;}
  29.  
  30.  
  31. T7*e2s(char*e){
  32. return se_ms(strlen(e),e);}
  33.  
  34.  
  35. char*s2e(T7*s){
  36. char*e=malloc(1+s->_count);
  37. memcpy(e,s->_storage,s->_count);
  38. e[s->_count]='\0';
  39. return e;}
  40. /*
  41. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  42. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  43. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  44. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  45. -- this header is kept unaltered, and a notification of the changes is added.
  46. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  47. -- another product.
  48. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  49. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  50. --                       http://www.loria.fr/SmallEiffel
  51. --
  52. */
  53.  
  54. /*
  55.   This file (boost.c) is automatically included when `run_control.boost' is
  56.   true (ie. only for mode -boost).
  57. */
  58.  
  59. void se_print_run_time_stack (void) {
  60.   fprintf(SE_ERR,"Eiffel program crash at run time.\n");
  61.   fprintf(SE_ERR,"No trace when using option \"-boost\"\n");
  62. }
  63.  
  64. void sigrsp(int sig) {
  65.   printf("Received signal %d (man signal).\n",sig);
  66.   se_print_run_time_stack();
  67.   exit(1);
  68. }
  69.  
  70.  
  71. void r2append_in(T2 C,T0* a1){
  72. T2 _i=0;
  73. T2 _val=0;
  74. /*[IF*/
  75. if((C)==(0)){
  76. r7extend(((T7*)a1),'0');
  77. }
  78. else{
  79. /*[IF*/
  80. if((C)>(0)){
  81. _i=((((T7*)a1))->_count/*4*/)+(1);
  82. _val=C;
  83. while (!((_val)==(0))) {
  84. r7extend(((T7*)a1),r2digit((_val)%(10)));
  85. _val=(_val)/(10);
  86. }
  87. }
  88. else{
  89. r7extend(((T7*)a1),'\55');
  90. _i=((((T7*)a1))->_count/*4*/)+(1);
  91. _val=C;
  92. while (!((_val)==(0))) {
  93. r7extend(((T7*)a1),r2digit(-((_val)%(10))));
  94. _val=(_val)/(10);
  95. }
  96. }
  97. /*FI]*/
  98. _val=(((T7*)a1))->_count/*4*/;
  99. while (!((_i)>=(_val))) {
  100. r7swap(((T7*)a1),_i,_val);
  101. _val=(_val)-(1);
  102. _i=(_i)+(1);
  103. }
  104. }
  105. /*FI]*/
  106. }
  107.  
  108.  
  109. T3 r2digit(T2 C){
  110. T3 R=0;
  111. R=((T3)((C)+(((unsigned char)'0'))));
  112. return R;
  113. }
  114.  
  115.  
  116. T3 r3to_upper(T3 C){
  117. T3 R=0;
  118. /*[IF*/
  119. if((((unsigned char)C))<(97)){
  120. R=C;
  121. }
  122.  else if((((unsigned char)C))>(122)){
  123. R=C;
  124. }
  125. else{
  126. R=((T3)((((unsigned char)C))-(32)));
  127. }
  128. /*FI]*/
  129. return R;
  130. }
  131.  
  132.  
  133. T6 r3is_separator(T3 C){
  134. T6 R=0;
  135. {int z1=C;
  136.  
  137. if((0==z1)||((9<=z1)&&(z1<=10))||(13==z1)||(32==z1)){
  138. R=1;
  139. }
  140. }
  141. return R;
  142. }
  143.  
  144.  
  145. T3 r3to_lower(T3 C){
  146. T3 R=0;
  147. /*[IF*/
  148. if((((unsigned char)C))<(65)){
  149. R=C;
  150. }
  151.  else if((((unsigned char)C))>(90)){
  152. R=C;
  153. }
  154. else{
  155. R=((T3)((((unsigned char)C))+(32)));
  156. }
  157. /*FI]*/
  158. return R;
  159. }
  160.  
  161.  
  162. T6 r3is_letter(T3 C){
  163. T6 R=0;
  164. {int z1=C;
  165.  
  166. if(((65<=z1)&&(z1<=90))||((97<=z1)&&(z1<=122))){
  167. R=1;
  168. }
  169. }
  170. return R;
  171. }
  172.  
  173.  
  174. T6 r3is_digit(T3 C){
  175. T6 R=0;
  176. {int z1=C;
  177.  
  178. if(((48<=z1)&&(z1<=57))){
  179. R=1;
  180. }
  181. }
  182. return R;
  183. }
  184.  
  185.  
  186. T6 r6_ix_not(T6 C){
  187. T6 R=0;
  188. /*[IF*/
  189. if(C){
  190. }
  191. else{
  192. R=1;
  193. }
  194. /*FI]*/
  195. return R;
  196. }
  197.  
  198.  
  199. void r24set_all_with(T24 C,T0* a1,T2 a2){
  200. T2 _i=0;
  201. _i=a2;
  202. while (!((_i)<(0))) {
  203. (C)[_i]=(a1);
  204. _i=(_i)-(1);
  205. }
  206. }
  207.  
  208.  
  209. T6 r24equal_like(T0* a1,T0* a2){
  210. T6 R=0;
  211. /*[IF*/
  212. /*AF*//*AF*/if((a1)==((void*)(a2))){
  213. R=1;
  214. }
  215.  else if(((a1)==((void*)(NULL)))||((a2)==((void*)(NULL)))){
  216. }
  217. else{
  218. R=r7is_equal(((T7*)a1),a2);
  219. }
  220. /*FI]*/
  221. return R;
  222. }
  223.  
  224.  
  225. T2 r24index_of(T24 C,T0* a1,T2 a2){
  226. T2 R=0;
  227. while (!(((R)>(a2))||(r24equal_like(a1,(C)[R])))) {
  228. R=(R)+(1);
  229. }
  230. return R;
  231. }
  232.  
  233.  
  234. T6 r9fast_memcmp(T9 C,T9 a1,T2 a2){
  235. T6 R=0;
  236. T2 _i=0;
  237. R=1;
  238. _i=(a2)-(1);
  239. while (!(((_i)<(0))||(!(R)))) {
  240. R=((C)[_i])==((a1)[_i]);
  241. _i=(_i)-(1);
  242. }
  243. return R;
  244. }
  245.  
  246.  
  247. T9 r9realloc(T9 C,T2 a1,T2 a2){
  248. T9 R=NULL;
  249. R=calloc(a2,sizeof(T3));
  250. r9copy_from(R,C,(a1)-(1));
  251. return R;
  252. }
  253.  
  254.  
  255. void r9copy_at(T9 C,T2 a1,T9 a2,T2 a3){
  256. T2 _i2=0;
  257. T2 _i1=0;
  258. _i1=a1;
  259. while (!((_i2)==(a3))) {
  260. (C)[_i1]=((a2)[_i2]);
  261. _i2=(_i2)+(1);
  262. _i1=(_i1)+(1);
  263. }
  264. }
  265.  
  266.  
  267. T2 r9fast_index_of(T9 C,T3 a1,T2 a2){
  268. T2 R=0;
  269. while (!(((R)>(a2))||((a1)==((C)[R])))) {
  270. R=(R)+(1);
  271. }
  272. return R;
  273. }
  274.  
  275.  
  276. void r9copy_from(T9 C,T9 a1,T2 a2){
  277. T2 _i=0;
  278. _i=a2;
  279. while (!((_i)<(0))) {
  280. (C)[_i]=((a1)[_i]);
  281. _i=(_i)-(1);
  282. }
  283. }
  284.  
  285.  
  286. void r7remove_first(T7* C,T2 a1){
  287. /*[IF*/
  288. if((a1)>(0)){
  289. r7remove_between(C,1,a1);
  290. }
  291. /*FI]*/
  292. }
  293.  
  294.  
  295. T6 r7has(T7* C,T3 a1){
  296. T6 R=0;
  297. R=(r7index_of(C,a1))!=(((C)->_count/*4*/)+(1));
  298. return R;
  299. }
  300.  
  301.  
  302. T8 r7to_external(T7* C){
  303. T8 R=0;
  304. /*[IF*/
  305. if(((C)->_capacity/*8*/)>((C)->_count/*4*/)){
  306. C->_count=((C)->_count/*4*/)+(1);
  307. /*[IF*/
  308. if((/*(IRF4.6item*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]/*)*/)!=('\0')){
  309. /*[IRF3.5put*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]=('\0');
  310. /*]*/
  311. }
  312. /*FI]*/
  313. }
  314. else{
  315. r7extend(C,'\0');
  316. }
  317. /*FI]*/
  318. C->_count=((C)->_count/*4*/)-(1);
  319. R=((void*)(C)->_storage/*0*/);
  320. return R;
  321. }
  322.  
  323.  
  324. void r7to_upper(T7* C){
  325. T2 _i=0;
  326. _i=(C)->_count/*4*/;
  327. while (!((_i)==(0))) {
  328. /*[IRF3.5put*/((C)->_storage/*0*/)[(_i)-(1)]=(r3to_upper(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
  329. /*]*/
  330. _i=(_i)-(1);
  331. }
  332. }
  333. /*No:STRING.remove_suffix*/
  334.  
  335.  
  336. T0* r7twin(T7* C){
  337. T0* R=NULL;
  338. R=malloc(sizeof(*C));
  339. *((T7*)R)=M7;
  340. r7copy(((T7*)R),((T0*)C));
  341. return R;
  342. }
  343.  
  344.  
  345. void r7set_last(T7* C,T3 a1){
  346. /*[IF*/
  347. if((((C)->_count/*4*/)==(0))||((/*(IRF4.6item*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]/*)*/)!=(a1))){
  348. r7extend(C,a1);
  349. }
  350. /*FI]*/
  351. }
  352.  
  353.  
  354. void r7remove_last(T7* C,T2 a1){
  355. C->_count=((C)->_count/*4*/)-(a1);
  356. }
  357.  
  358.  
  359. void r7to_lower(T7* C){
  360. T2 _i=0;
  361. _i=(C)->_count/*4*/;
  362. while (!((_i)==(0))) {
  363. /*[IRF3.5put*/((C)->_storage/*0*/)[(_i)-(1)]=(r3to_lower(/*(IRF4.6item*/((C)->_storage/*0*/)[(_i)-(1)]/*)*/));
  364. /*]*/
  365. _i=(_i)-(1);
  366. }
  367. }
  368.  
  369.  
  370. T6 r7is_equal(T7* C,T0* a1){
  371. T6 R=0;
  372. /*[IF*/
  373. if((C)==((void*)(a1))){
  374. R=1;
  375. }
  376.  else if(((C)->_count/*4*/)==((((T7*)a1))->_count/*4*/)){
  377. R=r9fast_memcmp((C)->_storage/*0*/,(((T7*)a1))->_storage/*0*/,(C)->_count/*4*/);
  378. }
  379. /*FI]*/
  380. return R;
  381. }
  382.  
  383.  
  384. T6 r7has_suffix(T7* C,T0* a1){
  385. T6 R=0;
  386. T2 _i2=0;
  387. T2 _i1=0;
  388. /*[IF*/
  389. if(((((T7*)a1))->_count/*4*/)<=((C)->_count/*4*/)){
  390. _i1=(((C)->_count/*4*/)-((((T7*)a1))->_count/*4*/))+(1);
  391. _i2=1;
  392. while (!((((_i1)>((C)->_count/*4*/))||((_i2)>((((T7*)a1))->_count/*4*/)))||((/*(IRF4.6item*/((C)->_storage/*0*/)[(_i1)-(1)]/*)*/)!=(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i2)-(1)]/*)*/)))) {
  393. _i1=(_i1)+(1);
  394. _i2=(_i2)+(1);
  395. }
  396. R=(_i1)>((C)->_count/*4*/);
  397. }
  398. /*FI]*/
  399. return R;
  400. }
  401. /*No:STRING.item*/
  402.  
  403.  
  404. void r7remove_between(T7* C,T2 a1,T2 a2){
  405. T2 _i=0;
  406. _i=a2;
  407. while (!((_i)>=((C)->_count/*4*/))) {
  408. /*[IRF3.5put*/((C)->_storage/*0*/)[(((a1)+(_i))-(a2))-(1)]=(/*(IRF4.6item*/((C)->_storage/*0*/)[((_i)+(1))-(1)]/*)*/);
  409. /*]*/
  410. _i=(_i)+(1);
  411. }
  412. C->_count=((C)->_count/*4*/)-(((a2)-(a1))+(1));
  413. }
  414.  
  415.  
  416. T3 r7last(T7* C){
  417. T3 R=0;
  418. R=/*(IRF4.6item*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]/*)*/;
  419. return R;
  420. }
  421. /*No:STRING.count*/
  422.  
  423.  
  424. void r7make(T7* C,T2 a1){
  425. /*[IF*/
  426. if((a1)>(0)){
  427. /*[IF*/
  428. if(((C)->_capacity/*8*/)<(a1)){
  429. C->_storage=calloc(a1,sizeof(T3));
  430. C->_capacity=a1;
  431. }
  432. /*FI]*/
  433. }
  434. /*FI]*/
  435. C->_count=0;
  436. }
  437.  
  438.  
  439. void r7append(T7* C,T0* a1){
  440. T2 _needed_capacity=0;
  441. T2 _other_count=0;
  442. _other_count=(((T7*)a1))->_count/*4*/;
  443. _needed_capacity=((C)->_count/*4*/)+(_other_count);
  444. /*[IF*/
  445. if(((C)->_capacity/*8*/)<(_needed_capacity)){
  446. /*[IF*/
  447. if(((C)->_capacity/*8*/)==(0)){
  448. C->_capacity=_needed_capacity;
  449. C->_storage=calloc((C)->_capacity/*8*/,sizeof(T3));
  450. }
  451. else{
  452. C->_storage=r9realloc((C)->_storage/*0*/,(C)->_capacity/*8*/,_needed_capacity);
  453. C->_capacity=_needed_capacity;
  454. }
  455. /*FI]*/
  456. }
  457. /*FI]*/
  458. r9copy_at((C)->_storage/*0*/,(C)->_count/*4*/,(((T7*)a1))->_storage/*0*/,_other_count);
  459. C->_count=_needed_capacity;
  460. }
  461.  
  462.  
  463. void r7extend(T7* C,T3 a1){
  464. T2 _new_capacity=0;
  465. /*[IF*/
  466. if(((C)->_capacity/*8*/)>((C)->_count/*4*/)){
  467. }
  468.  else if(((C)->_capacity/*8*/)==(0)){
  469. C->_capacity=32;
  470. C->_storage=calloc((C)->_capacity/*8*/,sizeof(T3));
  471. }
  472. else{
  473. _new_capacity=(2)*((C)->_capacity/*8*/);
  474. C->_storage=r9realloc((C)->_storage/*0*/,(C)->_capacity/*8*/,_new_capacity);
  475. C->_capacity=_new_capacity;
  476. }
  477. /*FI]*/
  478. C->_count=((C)->_count/*4*/)+(1);
  479. /*[IRF3.5put*/((C)->_storage/*0*/)[((C)->_count/*4*/)-(1)]=(a1);
  480. /*]*/
  481. }
  482. /*No:STRING.clear*/
  483.  
  484.  
  485. void r7swap(T7* C,T2 a1,T2 a2){
  486. T3 _tmp=0;
  487. _tmp=/*(IRF4.6item*/((C)->_storage/*0*/)[(a1)-(1)]/*)*/;
  488. /*[IRF3.5put*/((C)->_storage/*0*/)[(a1)-(1)]=(/*(IRF4.6item*/((C)->_storage/*0*/)[(a2)-(1)]/*)*/);
  489. /*]*/
  490. /*[IRF3.5put*/((C)->_storage/*0*/)[(a2)-(1)]=(_tmp);
  491. /*]*/
  492. }
  493.  
  494.  
  495. void r7copy(T7* C,T0* a1){
  496. C->_count=(((T7*)a1))->_count/*4*/;
  497. /*[IF*/
  498. if(((C)->_count/*4*/)>(0)){
  499. /*[IF*/
  500. if(((C)->_capacity/*8*/)<((C)->_count/*4*/)){
  501. C->_storage=calloc((C)->_count/*4*/,sizeof(T3));
  502. C->_capacity=(C)->_count/*4*/;
  503. }
  504. /*FI]*/
  505. r9copy_from((C)->_storage/*0*/,(((T7*)a1))->_storage/*0*/,((C)->_count/*4*/)-(1));
  506. }
  507. /*FI]*/
  508. }
  509.  
  510.  
  511. T2 r7index_of(T7* C,T3 a1){
  512. T2 R=0;
  513. R=(1)+(r9fast_index_of((C)->_storage/*0*/,a1,((C)->_count/*4*/)-(1)));
  514. return R;
  515. }
  516. /*No:STRING.capacity*/
  517. /*No:STRING.put*/
  518. /*No:STRING.storage*/
  519. /*No:FIXED_ARRAY[STRING].clear_all*/
  520. /*No:FIXED_ARRAY[STRING].item*/
  521. /*No:FIXED_ARRAY[STRING].set_all_with*/
  522.  
  523.  
  524. void r23make(T23* C,T2 a1){
  525. /*[IF*/
  526. if((a1)==(0)){
  527. C->_upper=-(1);
  528. }
  529.  else if(((C)->_capacity/*4*/)==(0)){
  530. C->_storage=calloc(a1,sizeof(T0*));
  531. C->_capacity=a1;
  532. C->_upper=(a1)-(1);
  533. }
  534.  else if(((C)->_capacity/*4*/)<(a1)){
  535. C->_storage=calloc(a1,sizeof(T0*));
  536. C->_capacity=a1;
  537. C->_upper=(a1)-(1);
  538. }
  539. else{
  540. C->_upper=(a1)-(1);
  541. /*[IRF3.6clear_all*/{T23* C1=C;
  542. T0* __value=NULL;
  543. /*[IRF3.6set_all_with*/{T23* C2=C1;
  544. T0* c1=__value;
  545. r24set_all_with((C2)->_storage/*0*/,c1,(C2)->_upper/*8*/);
  546. }/*]*/
  547. }/*]*/
  548. }
  549. /*FI]*/
  550. }
  551. /*No:FIXED_ARRAY[STRING].upper*/
  552. /*No:FIXED_ARRAY[STRING].capacity*/
  553. /*No:FIXED_ARRAY[STRING].put*/
  554. /*No:FIXED_ARRAY[STRING].storage*/
  555.  
  556.  
  557. T0* r36item(T36* C,T2 a1){
  558. T0* R=NULL;
  559. R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
  560. return R;
  561. }
  562. /*No:ARRAY[STRING].lower*/
  563. /*No:ARRAY[STRING].upper*/
  564.  
  565.  
  566. T2 r36index_of(T36* C,T0* a1){
  567. T2 R=0;
  568. R=((C)->_lower/*12*/)+(r24index_of((C)->_storage/*0*/,a1,((C)->_upper/*8*/)-((C)->_lower/*12*/)));
  569. return R;
  570. }
  571. /*No:ARRAY[STRING].capacity*/
  572. /*No:ARRAY[STRING].storage*/
  573. /*No:STD_ERROR.flush*/
  574.  
  575.  
  576. void r37put_string(T37* C,T0* a1){
  577. T2 _i=0;
  578. _i=1;
  579. while (!((_i)>((((T7*)a1))->_count/*4*/))) {
  580. /*[IRF3.6put_character*/{T37* C1=C;
  581. T3 b1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
  582. putc(b1,((FILE*)(stderr)));
  583. }/*]*/
  584. _i=(_i)+(1);
  585. }
  586. }
  587. /*No:STD_ERROR.make*/
  588. /*No:STD_ERROR.put_character*/
  589. /*No:RUN_CONTROL.root_class*/
  590. /*No:RUN_CONTROL.eiffel_suffix*/
  591. /*No:RUN_CONTROL.make*/
  592.  
  593.  
  594. void r38compute_root_class(T38* C,T0* a1){
  595. T3 _c=0;
  596. T2 _i=0;
  597. C->_root_class=r7twin(((T7*)a1));
  598. /*[IF*/
  599. if(r7has_suffix((T7*)((C)->_root_class/*0*/),((T0*)ms11_300))){
  600. r7remove_last((T7*)((C)->_root_class/*0*/),2);
  601. }
  602. /*FI]*/
  603. _i=((T7*)((C)->_root_class/*0*/))->_count/*4*/;
  604. while (!((_i)==(0))) {
  605. _c=/*(IRF4.6item*/(((T7*)((C)->_root_class/*0*/))->_storage/*0*/)[(_i)-(1)]/*)*/;
  606. /*[IF*/
  607. if(r3is_letter(_c)){
  608. _i=(_i)-(1);
  609. }
  610.  else if((_c)==('\137')){
  611. _i=(_i)-(1);
  612. }
  613.  else if(r3is_digit(_c)){
  614. _i=(_i)-(1);
  615. }
  616. else{
  617. r7remove_first((T7*)((C)->_root_class/*0*/),_i);
  618. _i=0;
  619. }
  620. /*FI]*/
  621. }
  622. r7to_upper((T7*)((C)->_root_class/*0*/));
  623. }
  624. T0*oBC11run_control=NULL;
  625.  
  626.  
  627. T6 r10file_exists(T0* a1){
  628. T6 R=0;
  629. R=r29is_readable(a1);
  630. return R;
  631. }
  632. /*No:CLEAN.o_suffix*/
  633. int fBC11system_tools=0;
  634. T0*oBC11system_tools=NULL;
  635.  
  636.  
  637. T0* r10system_tools(void){
  638. if(fBC11system_tools==0){
  639. fBC11system_tools=1;
  640. {T35*n=malloc(sizeof(*n));
  641. *n=M35;
  642. r35make(n);
  643. oBC11system_tools=(T0*)n;
  644. }
  645. }
  646. return oBC11system_tools;}
  647.  
  648.  
  649. void r10h_c_d_removing(T0* a1){
  650. T2 _i=0;
  651. _i=1;
  652. while (!((_i)==(0))) {
  653. r7copy((T7*)(oBC10tmp_string),a1);
  654. r2append_in(_i,oBC10tmp_string);
  655. r7extend((T7*)(oBC10tmp_string),'\56');
  656. r7extend((T7*)(oBC10tmp_string),'c');
  657. /*[IF*/
  658. if(r10file_exists(oBC10tmp_string)){
  659. r28file_removing((T28*)(oBC11echo),oBC10tmp_string);
  660. /*[IRF3.5put*/(((T7*)(oBC10tmp_string))->_storage/*0*/)[(((T7*)(oBC10tmp_string))->_count/*4*/)-(1)]=('d');
  661. /*]*/
  662. r28file_removing((T28*)(oBC11echo),oBC10tmp_string);
  663. r7remove_last((T7*)(oBC10tmp_string),2);
  664. r7append((T7*)(oBC10tmp_string),/*(IRF4.9o_suffix*/r35o_suffix_memory((T35*)(r10system_tools()))/*)*/);
  665. r28file_removing((T28*)(oBC11echo),oBC10tmp_string);
  666. _i=(_i)+(1);
  667. }
  668. else{
  669. _i=0;
  670. }
  671. /*FI]*/
  672. }
  673. r7copy((T7*)(oBC10tmp_string),a1);
  674. r7extend((T7*)(oBC10tmp_string),'\56');
  675. r7extend((T7*)(oBC10tmp_string),'h');
  676. r28file_removing((T28*)(oBC11echo),oBC10tmp_string);
  677. /*[IRF3.5put*/(((T7*)(oBC10tmp_string))->_storage/*0*/)[(((T7*)(oBC10tmp_string))->_count/*4*/)-(1)]=('c');
  678. /*]*/
  679. r28file_removing((T28*)(oBC11echo),oBC10tmp_string);
  680. /*[IRF3.5put*/(((T7*)(oBC10tmp_string))->_storage/*0*/)[(((T7*)(oBC10tmp_string))->_count/*4*/)-(1)]=('d');
  681. /*]*/
  682. r28file_removing((T28*)(oBC11echo),oBC10tmp_string);
  683. }
  684. /*No:CLEAN.eiffel_suffix*/
  685.  
  686.  
  687. T0* r10argument(T2 a1){
  688. T0* R=NULL;
  689. R=/*(IRF4.6item*/(((T23*)(r10command_arguments()))->_storage/*0*/)[a1]/*)*/;
  690. return R;
  691. }
  692. T29 oBC1file_tools=0;
  693. /*No:CLEAN.make*/
  694. T0*oBC11echo=NULL;
  695. /*No:CLEAN.argument_count*/
  696. /*No:CLEAN.fz_verbose_flag*/
  697. int fBC1command_arguments=0;
  698. T0*oBC1command_arguments=NULL;
  699.  
  700.  
  701. T0* r10command_arguments(void){
  702. if(fBC1command_arguments==0){
  703. T0* _arg=NULL;
  704. T2 _i=0;
  705. fBC1command_arguments=1;
  706. _i=se_argc;
  707. {T23*n=malloc(sizeof(*n));
  708. *n=M23;
  709. r23make(n,_i);
  710. oBC1command_arguments=(T0*)n;
  711. }
  712. while (!((_i)==(0))) {
  713. _i=(_i)-(1);
  714. _arg=((T0*)e2s(se_argv[_i]));
  715. /*[IRF3.5put*/((((T23*)oBC1command_arguments))->_storage/*0*/)[_i]=(_arg);
  716. /*]*/
  717. }
  718. }
  719. return oBC1command_arguments;}
  720. T0*oBC10tmp_string=NULL;
  721.  
  722.  
  723. T0* r35remove_make_script(T35* C){
  724. T0* R=NULL;
  725. R=r35path_h(C);
  726. /*[IRF3.6remove_suffix*/{T7* C1=((T7*)R);
  727. T0* b1=((T0*)ms11_306);
  728. r7remove_last(C1,(((T7*)b1))->_count/*4*/);
  729. }/*]*/
  730. r7append(((T7*)R),r35make_suffix(C));
  731. r28file_removing((T28*)(oBC11echo),R);
  732. return R;
  733. }
  734. /*No:SYSTEM_TOOLS.system_name*/
  735.  
  736.  
  737. void r35parent_directory(T35* C,T0* a1){
  738. /*[IF*/
  739. if(r35slash_separator(C)){
  740. r7remove_last(((T7*)a1),1);
  741. while (!((r7last(((T7*)a1)))==('\57'))) {
  742. r7remove_last(((T7*)a1),1);
  743. }
  744. }
  745.  else if(r35backslash_separator(C)){
  746. r7remove_last(((T7*)a1),1);
  747. while (!((r7last(((T7*)a1)))==('\134'))) {
  748. r7remove_last(((T7*)a1),1);
  749. }
  750. }
  751.  else if(r35colon_separator(C)){
  752. r7remove_last(((T7*)a1),1);
  753. while (!((r7last(((T7*)a1)))==('\72'))) {
  754. r7remove_last(((T7*)a1),1);
  755. }
  756. }
  757.  else if((((T0*)ms35_756))==((void*)((C)->_system_name/*0*/))){
  758. r7remove_last(((T7*)a1),1);
  759. while (!((r7last(((T7*)a1)))==('\56'))) {
  760. r7remove_last(((T7*)a1),1);
  761. }
  762. r7remove_last(((T7*)a1),1);
  763. r7extend(((T7*)a1),'\135');
  764. }
  765. /*FI]*/
  766. }
  767. /*No:SYSTEM_TOOLS.windows_system*/
  768. int fBC35o_suffix_memory=0;
  769. T0*oBC35o_suffix_memory=NULL;
  770.  
  771.  
  772. T0* r35o_suffix_memory(T35* C){
  773. if(fBC35o_suffix_memory==0){
  774. fBC35o_suffix_memory=1;
  775. {T7*n=malloc(sizeof(*n));
  776. *n=M7;
  777. r7make(n,4);
  778. oBC35o_suffix_memory=(T0*)n;
  779. }
  780. r7copy((T7*)(((T0*)ms11_583550)),(C)->_sys_directory/*4*/);
  781. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms35_8721));
  782. r7append((T7*)(((T0*)ms11_583550)),(C)->_system_name/*0*/);
  783. r28sfr_connect_or_exit((T28*)(oBC11echo),oBC11tmp_file_read,((T0*)ms11_583550));
  784. oBC35o_suffix_memory=r28read_word_in((T28*)(oBC11echo),oBC11tmp_file_read);
  785. r30disconnect((T30*)(oBC11tmp_file_read));
  786. }
  787. return oBC35o_suffix_memory;}
  788. T0*oBC11tmp_file_read=NULL;
  789. /*No:SYSTEM_TOOLS.help_suffix*/
  790. /*No:SYSTEM_TOOLS.fz_03*/
  791. /*No:SYSTEM_TOOLS.vms_system*/
  792. /*No:SYSTEM_TOOLS.fz_se*/
  793.  
  794.  
  795. T0* r35path_h(T35* C){
  796. T0* R=NULL;
  797. R=r7twin((T7*)(((T38*)(oBC11run_control))->_root_class/*0*/));
  798. r7to_lower(((T7*)R));
  799. /*[IF*/
  800. if((((T0*)ms35_708))==((void*)((C)->_system_name/*0*/))){
  801. while (!(((((T7*)R))->_count/*4*/)<=(4))) {
  802. r7remove_last(((T7*)R),1);
  803. }
  804. }
  805. /*FI]*/
  806. r7append(((T7*)R),((T0*)ms11_306));
  807. return R;
  808. }
  809. /*No:SYSTEM_TOOLS.beos_system*/
  810.  
  811.  
  812. T0* r35get_environment_variable(T35* C,T0* a1){
  813. T0* R=NULL;
  814. T8 _p=0;
  815. _p=r7to_external(((T7*)a1));
  816. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  817. return R;
  818. }
  819. /*No:SYSTEM_TOOLS.fz_sys*/
  820. /*No:SYSTEM_TOOLS.fz_system_se*/
  821. /*No:SYSTEM_TOOLS.fz_bin*/
  822. /*No:SYSTEM_TOOLS.dos_system*/
  823. /*No:SYSTEM_TOOLS.sys_directory*/
  824. /*No:SYSTEM_TOOLS.fz_b0*/
  825. T0*oBC35system_list=NULL;
  826.  
  827.  
  828. void r35bad_use_exit(T35* C,T0* a1){
  829. r28w_put_string(((T0*)ms35_46940));
  830. r28w_put_string(a1);
  831. r28w_put_string(((T0*)ms35_303));
  832. r7copy((T7*)(((T0*)ms11_583550)),(C)->_sys_directory/*4*/);
  833. r35parent_directory(C,((T0*)ms11_583550));
  834. r35add_directory(C,((T0*)ms11_583550),((T0*)ms35_966));
  835. r7append((T7*)(((T0*)ms11_583550)),a1);
  836. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms11_1632));
  837. r28w_put_string(((T0*)ms35_39440));
  838. r28w_put_string(((T0*)ms11_583550));
  839. r28w_put_character('\n');
  840. exit(1);
  841. }
  842. /*No:SYSTEM_TOOLS.amiga_system*/
  843. int fBC35make_suffix=0;
  844. T0*oBC35make_suffix=NULL;
  845.  
  846.  
  847. T0* r35make_suffix(T35* C){
  848. if(fBC35make_suffix==0){
  849. fBC35make_suffix=1;
  850. /*[IF*/
  851. if((((T0*)ms35_708))==((void*)((C)->_system_name/*0*/))){
  852. oBC35make_suffix=((T0*)ms35_1084);
  853. }
  854.  else if((((T0*)ms35_9331))==((void*)((C)->_system_name/*0*/))){
  855. oBC35make_suffix=((T0*)ms35_1468);
  856. }
  857.  else if((((T0*)ms35_756))==((void*)((C)->_system_name/*0*/))){
  858. oBC35make_suffix=((T0*)ms35_1116);
  859. }
  860.  else if((((T0*)ms35_654))==((void*)((C)->_system_name/*0*/))){
  861. oBC35make_suffix=((T0*)ms35_1072);
  862. }
  863. else{
  864. oBC35make_suffix=((T0*)ms35_2375);
  865. }
  866. /*FI]*/
  867. }
  868. return oBC35make_suffix;}
  869. /*No:SYSTEM_TOOLS.h_suffix*/
  870.  
  871.  
  872. void r35add_directory(T35* C,T0* a1,T0* a2){
  873. /*[IF*/
  874. if(r35slash_separator(C)){
  875. r7set_last(((T7*)a1),'\57');
  876. r7append(((T7*)a1),a2);
  877. r7set_last(((T7*)a1),'\57');
  878. }
  879.  else if(r35backslash_separator(C)){
  880. r7set_last(((T7*)a1),'\134');
  881. r7append(((T7*)a1),a2);
  882. r7set_last(((T7*)a1),'\134');
  883. }
  884.  else if(r35colon_separator(C)){
  885. r7set_last(((T7*)a1),'\72');
  886. r7append(((T7*)a1),a2);
  887. r7set_last(((T7*)a1),'\72');
  888. }
  889.  else if((((T0*)ms35_756))==((void*)((C)->_system_name/*0*/))){
  890. r7set_last(((T7*)a1),'\135');
  891. r7remove_last(((T7*)a1),1);
  892. r7set_last(((T7*)a1),'\56');
  893. r7append(((T7*)a1),a2);
  894. r7set_last(((T7*)a1),'\135');
  895. }
  896. /*FI]*/
  897. }
  898.  
  899.  
  900. void r35make(T35* C){
  901. T2 _i=0;
  902. T0* _system_se_path=NULL;
  903. _system_se_path=r35get_environment_variable(C,((T0*)ms12_18788));
  904. /*[IF*/
  905. if((_system_se_path)==((void*)(NULL))){
  906. _system_se_path=r7twin((T7*)(((T0*)ms12_18788)));
  907. r7to_upper(((T7*)_system_se_path));
  908. _system_se_path=r35get_environment_variable(C,_system_se_path);
  909. /*[IF*/
  910. if((_system_se_path)==((void*)(NULL))){
  911. r28put_string((T28*)(oBC11echo),((T0*)ms35_226958));
  912. _system_se_path=((T0*)ms35_132226);
  913. r28put_string((T28*)(oBC11echo),_system_se_path);
  914. r28put_string((T28*)(oBC11echo),((T0*)ms12_166));
  915. }
  916. /*FI]*/
  917. }
  918. /*FI]*/
  919. /*[IF*/
  920. if(r7has_suffix(((T7*)_system_se_path),((T0*)ms12_13428))){
  921. r28sfr_connect((T28*)(oBC11echo),oBC11tmp_file_read,_system_se_path);
  922. }
  923. else{
  924. r28put_string((T28*)(oBC11echo),((T0*)ms35_852461));
  925. /*[IF*/
  926. if(r7has(((T7*)_system_se_path),'\57')){
  927. r28put_string((T28*)(oBC11echo),((T0*)ms35_26690));
  928. r7copy((T7*)(((T0*)ms11_583550)),_system_se_path);
  929. r7set_last((T7*)(((T0*)ms11_583550)),'\57');
  930. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_1071));
  931. r7extend((T7*)(((T0*)ms11_583550)),'\57');
  932. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_13428));
  933. r28sfr_connect((T28*)(oBC11echo),oBC11tmp_file_read,((T0*)ms11_583550));
  934. }
  935. /*FI]*/
  936. /*[IF*/
  937. if(!(/*(IRF4.7is_connected*/(((T30*)(oBC11tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  938. /*[IF*/
  939. if(r7has(((T7*)_system_se_path),'\134')){
  940. r28put_string((T28*)(oBC11echo),((T0*)ms35_38940));
  941. r7copy((T7*)(((T0*)ms11_583550)),_system_se_path);
  942. r7set_last((T7*)(((T0*)ms11_583550)),'\134');
  943. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_1071));
  944. r7extend((T7*)(((T0*)ms11_583550)),'\134');
  945. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_13428));
  946. r28sfr_connect((T28*)(oBC11echo),oBC11tmp_file_read,((T0*)ms11_583550));
  947. }
  948. /*FI]*/
  949. }
  950. /*FI]*/
  951. /*[IF*/
  952. if(!(/*(IRF4.7is_connected*/(((T30*)(oBC11tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  953. /*[IF*/
  954. if(r7has(((T7*)_system_se_path),'\72')){
  955. r28put_string((T28*)(oBC11echo),((T0*)ms35_32565));
  956. r7copy((T7*)(((T0*)ms11_583550)),_system_se_path);
  957. r7set_last((T7*)(((T0*)ms11_583550)),'\72');
  958. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_1071));
  959. r7extend((T7*)(((T0*)ms11_583550)),'\72');
  960. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_13428));
  961. r28sfr_connect((T28*)(oBC11echo),oBC11tmp_file_read,((T0*)ms11_583550));
  962. }
  963. /*FI]*/
  964. }
  965. /*FI]*/
  966. /*[IF*/
  967. if(!(/*(IRF4.7is_connected*/(((T30*)(oBC11tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  968. /*[IF*/
  969. if(r7has(((T7*)_system_se_path),'\135')){
  970. r28put_string((T28*)(oBC11echo),((T0*)ms35_20300));
  971. r7copy((T7*)(((T0*)ms11_583550)),_system_se_path);
  972. r7set_last((T7*)(((T0*)ms11_583550)),'\135');
  973. r7remove_last((T7*)(((T0*)ms11_583550)),1);
  974. r7extend((T7*)(((T0*)ms11_583550)),'\56');
  975. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_1071));
  976. r7extend((T7*)(((T0*)ms11_583550)),'\135');
  977. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_13428));
  978. r28sfr_connect((T28*)(oBC11echo),oBC11tmp_file_read,((T0*)ms11_583550));
  979. }
  980. /*FI]*/
  981. }
  982. /*FI]*/
  983. /*[IF*/
  984. if(!(/*(IRF4.7is_connected*/(((T30*)(oBC11tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  985. r28put_string((T28*)(oBC11echo),((T0*)ms35_8302));
  986. r7copy((T7*)(((T0*)ms11_583550)),_system_se_path);
  987. r7append((T7*)(((T0*)ms11_583550)),((T0*)ms12_13428));
  988. r28sfr_connect((T28*)(oBC11echo),oBC11tmp_file_read,((T0*)ms11_583550));
  989. }
  990. /*FI]*/
  991. }
  992. /*FI]*/
  993. /*[IF*/
  994. if(!(/*(IRF4.7is_connected*/(((T30*)(oBC11tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
  995. r28w_put_string(((T0*)ms35_720532));
  996. exit(1);
  997. }
  998. /*FI]*/
  999. r30read_line((T30*)(oBC11tmp_file_read));
  1000. C->_system_name=oBC31last_string;
  1001. _i=r36index_of((T36*)(oBC35system_list),(C)->_system_name/*0*/);
  1002. /*[IF*/
  1003. if((_i)>(((T36*)(oBC35system_list))->_upper/*8*/)){
  1004. r28w_put_string(((T0*)ms35_44196));
  1005. r28w_put_string(((T30*)(oBC11tmp_file_read))->_path/*4*/);
  1006. r28w_put_string(((T0*)ms35_23364));
  1007. _i=1;
  1008. while (!((_i)>(((T36*)(oBC35system_list))->_upper/*8*/))) {
  1009. r28w_put_string(r36item((T36*)(oBC35system_list),_i));
  1010. r28w_put_character('\n');
  1011. _i=(_i)+(1);
  1012. }
  1013. exit(1);
  1014. }
  1015. else{
  1016. C->_system_name=r36item((T36*)(oBC35system_list),_i);
  1017. r28put_string((T28*)(oBC11echo),((T0*)ms35_10175));
  1018. r28put_string((T28*)(oBC11echo),(C)->_system_name/*0*/);
  1019. r28put_string((T28*)(oBC11echo),((T0*)ms12_288));
  1020. }
  1021. /*FI]*/
  1022. C->_sys_directory=r7twin((T7*)(((T30*)(oBC11tmp_file_read))->_path/*4*/));
  1023. /*[IRF3.6remove_suffix*/{T7* C1=(T7*)((C)->_sys_directory/*4*/);
  1024. T0* b1=((T0*)ms12_13428);
  1025. r7remove_last(C1,(((T7*)b1))->_count/*4*/);
  1026. }/*]*/
  1027. r30disconnect((T30*)(oBC11tmp_file_read));
  1028. C->_bin_directory=r7twin((T7*)((C)->_sys_directory/*4*/));
  1029. r35parent_directory(C,(C)->_bin_directory/*8*/);
  1030. r35add_directory(C,(C)->_bin_directory/*8*/,((T0*)ms12_957));
  1031. }
  1032. /*No:SYSTEM_TOOLS.os2_system*/
  1033.  
  1034.  
  1035. T6 r35colon_separator(T35* C){
  1036. T6 R=0;
  1037. /*[IF*/
  1038. if((((T0*)ms35_12951))==((void*)((C)->_system_name/*0*/))){
  1039. R=1;
  1040. }
  1041.  else if((((T0*)ms35_1356))==((void*)((C)->_system_name/*0*/))){
  1042. R=1;
  1043. }
  1044. /*FI]*/
  1045. return R;
  1046. }
  1047.  
  1048.  
  1049. T6 r35slash_separator(T35* C){
  1050. T6 R=0;
  1051. /*[IF*/
  1052. if((((T0*)ms35_1336))==((void*)((C)->_system_name/*0*/))){
  1053. R=1;
  1054. }
  1055.  else if((((T0*)ms35_2470))==((void*)((C)->_system_name/*0*/))){
  1056. R=1;
  1057. }
  1058. /*FI]*/
  1059. return R;
  1060. }
  1061.  
  1062.  
  1063. T6 r35backslash_separator(T35* C){
  1064. T6 R=0;
  1065. /*[IF*/
  1066. if((((T0*)ms35_9331))==((void*)((C)->_system_name/*0*/))){
  1067. R=1;
  1068. }
  1069.  else if((((T0*)ms35_708))==((void*)((C)->_system_name/*0*/))){
  1070. R=1;
  1071. }
  1072.  else if((((T0*)ms35_654))==((void*)((C)->_system_name/*0*/))){
  1073. R=1;
  1074. }
  1075. /*FI]*/
  1076. return R;
  1077. }
  1078. /*No:SYSTEM_TOOLS.unix_system*/
  1079. /*No:SYSTEM_TOOLS.exit_failure_code*/
  1080. /*No:SYSTEM_TOOLS.macintosh_system*/
  1081. /*No:SYSTEM_TOOLS.bin_directory*/
  1082. /*No:SYSTEM_TOOLS.tmp_path*/
  1083. T0*oBC1std_error=NULL;
  1084. /*No:ECHO.fz_b0*/
  1085.  
  1086.  
  1087. void r28sfr_connect_or_exit(T28* C,T0* a1,T0* a2){
  1088. r28sfr_connect(C,a1,a2);
  1089. /*[IF*/
  1090. if(!(/*(IRF4.7is_connected*/((((T30*)a1))->_path/*4*/)!=(NULL)/*)*/)){
  1091. r28w_put_string(((T0*)ms12_3810));
  1092. r28w_put_string(a2);
  1093. r28w_put_string(((T0*)ms12_11640));
  1094. exit(1);
  1095. }
  1096. /*FI]*/
  1097. }
  1098.  
  1099.  
  1100. void r28sfr_connect(T28* C,T0* a1,T0* a2){
  1101. r28put_string(C,((T0*)ms28_26523));
  1102. r28put_string(C,a2);
  1103. r28put_string(C,((T0*)ms12_288));
  1104. r30connect_to(((T30*)a1),a2);
  1105. }
  1106. /*No:ECHO.verbose*/
  1107.  
  1108.  
  1109. void r28search_for_verbose_flag(T28* C){
  1110. T2 _i=0;
  1111. _i=/*(IRF4.9argument_count*/((T23*)(r28command_arguments()))->_upper/*8*//*)*/;
  1112. while (!((_i)==(0))) {
  1113. /*[IF*/
  1114. if(r7is_equal((T7*)(((T0*)ms12_10392)),r28argument(_i))){
  1115. C->_verbose=1;
  1116. _i=0;
  1117. }
  1118. else{
  1119. _i=(_i)-(1);
  1120. }
  1121. /*FI]*/
  1122. }
  1123. }
  1124.  
  1125.  
  1126. T6 r28file_exists(T0* a1){
  1127. T6 R=0;
  1128. R=r29is_readable(a1);
  1129. return R;
  1130. }
  1131.  
  1132.  
  1133. T0* r28read_word_in(T28* C,T0* a1){
  1134. T0* R=NULL;
  1135. r28put_string(C,((T0*)ms28_25494));
  1136. r28put_string(C,(((T30*)a1))->_path/*4*/);
  1137. r28put_string(C,((T0*)ms12_288));
  1138. /*[IF*/
  1139. if(r30end_of_input(((T30*)a1))){
  1140. r28w_put_string(((T0*)ms28_72891));
  1141. r28w_put_string((((T30*)a1))->_path/*4*/);
  1142. r28w_put_string(((T0*)ms12_288));
  1143. exit(1);
  1144. }
  1145. else{
  1146. r30read_word(((T30*)a1));
  1147. R=r7twin((T7*)(oBC31last_string));
  1148. }
  1149. /*FI]*/
  1150. return R;
  1151. }
  1152.  
  1153.  
  1154. void r28w_put_string(T0* a1){
  1155. r37put_string((T37*)(oBC1std_error),a1);
  1156. /*[IRF3.6flush*/{T37* C1=(T37*)(oBC1std_error);
  1157. fflush(stderr);
  1158. }/*]*/
  1159. }
  1160. T0*oBC1std_output=NULL;
  1161. /*No:ECHO.remove_file*/
  1162. /*No:ECHO.fz_01*/
  1163.  
  1164.  
  1165. void r28file_removing(T28* C,T0* a1){
  1166. /*[IF*/
  1167. if(r28file_exists(a1)){
  1168. r28put_string(C,((T0*)ms28_8760));
  1169. r28put_string(C,a1);
  1170. r28put_string(C,((T0*)ms12_288));
  1171. /*[IRF3.6remove_file*/{T0* b1=a1;
  1172. r29delete(oBC1file_tools,b1);
  1173. }/*]*/
  1174. }
  1175. /*FI]*/
  1176. }
  1177.  
  1178.  
  1179. T0* r28argument(T2 a1){
  1180. T0* R=NULL;
  1181. R=/*(IRF4.6item*/(((T23*)(r28command_arguments()))->_storage/*0*/)[a1]/*)*/;
  1182. return R;
  1183. }
  1184.  
  1185.  
  1186. void r28put_string(T28* C,T0* a1){
  1187. /*[IF*/
  1188. if((C)->_verbose/*0*/){
  1189. r33put_string((T33*)(oBC1std_output),a1);
  1190. /*[IRF3.6flush*/{T33* C1=(T33*)(oBC1std_output);
  1191. fflush(stdout);
  1192. }/*]*/
  1193. }
  1194. /*FI]*/
  1195. }
  1196. /*No:ECHO.make*/
  1197. /*No:ECHO.fz_43*/
  1198. /*No:ECHO.argument_count*/
  1199. /*No:ECHO.exit_failure_code*/
  1200. /*No:ECHO.fz_verbose_flag*/
  1201.  
  1202.  
  1203. T0* r28command_arguments(void){
  1204. if(fBC1command_arguments==0){
  1205. T0* _arg=NULL;
  1206. T2 _i=0;
  1207. fBC1command_arguments=1;
  1208. _i=se_argc;
  1209. {T23*n=malloc(sizeof(*n));
  1210. *n=M23;
  1211. r23make(n,_i);
  1212. oBC1command_arguments=(T0*)n;
  1213. }
  1214. while (!((_i)==(0))) {
  1215. _i=(_i)-(1);
  1216. _arg=((T0*)e2s(se_argv[_i]));
  1217. /*[IRF3.5put*/((((T23*)oBC1command_arguments))->_storage/*0*/)[_i]=(_arg);
  1218. /*]*/
  1219. }
  1220. }
  1221. return oBC1command_arguments;}
  1222.  
  1223.  
  1224. void r28w_put_character(T3 a1){
  1225. /*[IRF3.6put_character*/{T37* C1=(T37*)(oBC1std_error);
  1226. T3 b1=a1;
  1227. putc(b1,((FILE*)(stderr)));
  1228. }/*]*/
  1229. /*[IRF3.6flush*/{T37* C1=(T37*)(oBC1std_error);
  1230. fflush(stderr);
  1231. }/*]*/
  1232. }
  1233. /*No:STD_OUTPUT.flush*/
  1234.  
  1235.  
  1236. void r33put_string(T33* C,T0* a1){
  1237. T2 _i=0;
  1238. _i=1;
  1239. while (!((_i)>((((T7*)a1))->_count/*4*/))) {
  1240. /*[IRF3.6put_character*/{T33* C1=C;
  1241. T3 b1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1242. putc(b1,((FILE*)(stdout)));
  1243. }/*]*/
  1244. _i=(_i)+(1);
  1245. }
  1246. }
  1247. /*No:STD_OUTPUT.make*/
  1248. /*No:STD_OUTPUT.put_character*/
  1249.  
  1250.  
  1251. void r30read_line(T30* C){
  1252. /*[IRF3.3clear*/((((T7*)((T7*)(oBC31last_string))))->_count)=(0);
  1253. /*]*/
  1254. r30read_line_in(C,oBC31last_string);
  1255. }
  1256.  
  1257.  
  1258. void r30read_line_in(T30* C,T0* a1){
  1259. T2 _mem=0;
  1260. r30read_character(C);
  1261. _mem=(C)->_memory/*12*/;
  1262. while (!((((_mem)==((EOF)))||((_mem)==(((unsigned char)'\n'))))||((_mem)==(((unsigned char)'\15'))))) {
  1263. r7extend(((T7*)a1),((T3)(_mem)));
  1264. _mem=getc((FILE*)((C)->_input_stream/*8*/));
  1265. }
  1266. C->_memory=_mem;
  1267. /*[IF*/
  1268. if((_mem)==(((unsigned char)'\15'))){
  1269. r30read_character(C);
  1270. /*[IF*/
  1271. if((/*(IRF4.6last_character*/((T3)((C)->_memory/*12*/))/*)*/)!=('\n')){
  1272. /*[IRF3.3unread_character*/((((T30*)(C)))->_push_back_flag)=(1);
  1273. /*]*/
  1274. }
  1275. /*FI]*/
  1276. }
  1277. /*FI]*/
  1278. }
  1279. /*No:STD_FILE_READ.path*/
  1280.  
  1281.  
  1282. void r30skip_separators(T30* C){
  1283. while (!((r30end_of_input(C))||(!(r3is_separator(/*(IRF4.6last_character*/((T3)((C)->_memory/*12*/))/*)*/))))) {
  1284. r30read_character(C);
  1285. }
  1286. }
  1287.  
  1288.  
  1289. void r30read_word(T30* C){
  1290. r30skip_separators(C);
  1291. /*[IRF3.3clear*/((((T7*)((T7*)(oBC31last_string))))->_count)=(0);
  1292. /*]*/
  1293. while (!((r30end_of_input(C))||(r3is_separator(/*(IRF4.6last_character*/((T3)((C)->_memory/*12*/))/*)*/)))) {
  1294. r7extend((T7*)(oBC31last_string),/*(IRF4.6last_character*/((T3)((C)->_memory/*12*/))/*)*/);
  1295. r30read_character(C);
  1296. }
  1297. }
  1298. /*No:STD_FILE_READ.memory*/
  1299. /*No:STD_FILE_READ.unread_character*/
  1300. /*No:STD_FILE_READ.last_character*/
  1301. /*No:STD_FILE_READ.input_stream*/
  1302. T0*oBC31last_string=NULL;
  1303.  
  1304.  
  1305. T6 r30end_of_input(T30* C){
  1306. T6 R=0;
  1307. /*[IF*/
  1308. if(!((C)->_push_back_flag/*0*/)){
  1309. R=((C)->_memory/*12*/)==((EOF));
  1310. }
  1311. /*FI]*/
  1312. return R;
  1313. }
  1314.  
  1315.  
  1316. void r30connect_to(T30* C,T0* a1){
  1317. T8 _p=0;
  1318. _p=r7to_external(((T7*)a1));
  1319. C->_input_stream=fopen((char*)_p,"r");
  1320. /*[IF*/
  1321. if((NULL!=(C)->_input_stream/*8*/)){
  1322. C->_push_back_flag=0;
  1323. C->_memory=((unsigned char)'\40');
  1324. C->_path=a1;
  1325. }
  1326. /*FI]*/
  1327. }
  1328. /*No:STD_FILE_READ.is_connected*/
  1329.  
  1330.  
  1331. void r30disconnect(T30* C){
  1332. fclose((C)->_input_stream/*8*/);
  1333. C->_path=NULL;
  1334. }
  1335. /*No:STD_FILE_READ.push_back_flag*/
  1336. /*No:STD_FILE_READ.make*/
  1337.  
  1338.  
  1339. void r30read_character(T30* C){
  1340. /*[IF*/
  1341. if((C)->_push_back_flag/*0*/){
  1342. C->_push_back_flag=0;
  1343. }
  1344. else{
  1345. C->_memory=getc((FILE*)((C)->_input_stream/*8*/));
  1346. }
  1347. /*FI]*/
  1348. }
  1349. T0*oBC29std_fr1=NULL;
  1350.  
  1351.  
  1352. void r29delete(int C,T0* a1){
  1353. T8 _p=0;
  1354. _p=r7to_external(((T7*)a1));
  1355. remove(((char*)_p));
  1356. }
  1357.  
  1358.  
  1359. T6 r29is_readable(T0* a1){
  1360. T6 R=0;
  1361. r30connect_to((T30*)(oBC29std_fr1),a1);
  1362. R=/*(IRF4.7is_connected*/(((T30*)(oBC29std_fr1))->_path/*4*/)!=(NULL)/*)*/;
  1363. /*[IF*/
  1364. if(R){
  1365. r30disconnect((T30*)(oBC29std_fr1));
  1366. }
  1367. /*FI]*/
  1368. return R;
  1369. }
  1370. T10*eiffel_root_object=NULL;
  1371. int se_argc;
  1372. char**se_argv;
  1373.  
  1374.  
  1375. void initialize_eiffel_runtime(int argc,char*argv[]){
  1376. se_argc=argc;
  1377. se_argv=argv;
  1378. #ifdef SIGINT
  1379. signal(SIGINT,sigrsp);
  1380. #endif
  1381. #ifdef SIGQUIT
  1382. signal(SIGQUIT,sigrsp);
  1383. #endif
  1384. #ifdef SIGTERM
  1385. signal(SIGTERM,sigrsp);
  1386. #endif
  1387. #ifdef SIGBREAK
  1388. signal(SIGBREAK,sigrsp);
  1389. #endif
  1390. #ifdef SIGKILL
  1391. signal(SIGKILL,sigrsp);
  1392. #endif
  1393. se_msi1();
  1394. oBC29std_fr1=NULL;
  1395. {T30*n=malloc(sizeof(*n));
  1396. *n=M30;
  1397. /*[IRF3.1make*//*]*/
  1398. oBC29std_fr1=(T0*)n;
  1399. }
  1400. /*PCO*/
  1401. oBC31last_string=NULL;
  1402. {T7*n=malloc(sizeof(*n));
  1403. *n=M7;
  1404. r7make(n,256);
  1405. oBC31last_string=(T0*)n;
  1406. }
  1407. /*PCO*/
  1408. oBC1file_tools=0;
  1409. /*PCO*/
  1410. oBC1std_output=NULL;
  1411. {T33*n=malloc(1);
  1412. /*[IRF3.1make*//*]*/
  1413. oBC1std_output=(T0*)n;
  1414. }
  1415. /*PCO*/
  1416. oBC1std_error=NULL;
  1417. {T37*n=malloc(1);
  1418. /*[IRF3.1make*//*]*/
  1419. oBC1std_error=(T0*)n;
  1420. }
  1421. /*PCO*/
  1422. oBC11echo=NULL;
  1423. {T28*n=malloc(sizeof(*n));
  1424. *n=M28;
  1425. /*[IRF3.1make*//*]*/
  1426. oBC11echo=(T0*)n;
  1427. }
  1428. /*PCO*/
  1429. oBC11run_control=NULL;
  1430. {T38*n=malloc(sizeof(*n));
  1431. *n=M38;
  1432. /*[IRF3.1make*//*]*/
  1433. oBC11run_control=(T0*)n;
  1434. }
  1435. /*PCO*/
  1436. oBC35system_list=NULL;
  1437. oBC35system_list=se_ma36(8,
  1438. ((T0*)ms35_2470),
  1439. ((T0*)ms35_1356),
  1440. ((T0*)ms35_708),
  1441. ((T0*)ms35_12951),
  1442. ((T0*)ms35_654),
  1443. ((T0*)ms35_1336),
  1444. ((T0*)ms35_756),
  1445. ((T0*)ms35_9331));
  1446. /*PCO*/
  1447. oBC11tmp_file_read=NULL;
  1448. {T30*n=malloc(sizeof(*n));
  1449. *n=M30;
  1450. /*[IRF3.1make*//*]*/
  1451. oBC11tmp_file_read=(T0*)n;
  1452. }
  1453. /*PCO*/
  1454. oBC10tmp_string=NULL;
  1455. {T7*n=malloc(sizeof(*n));
  1456. *n=M7;
  1457. r7make(n,256);
  1458. oBC10tmp_string=(T0*)n;
  1459. }
  1460. /*PCO*/
  1461. eiffel_root_object=malloc(1);
  1462. }
  1463. int main(int argc,char*argv[]){
  1464. initialize_eiffel_runtime(argc,argv);
  1465. {T10*n=eiffel_root_object;
  1466. /*[IRF3.2make*/{T0* _str=NULL;
  1467. T2 _arg=0;
  1468. /*[IF*/
  1469. if((/*(IRF4.9argument_count*/((T23*)(r10command_arguments()))->_upper/*8*//*)*/)<(1)){
  1470. r35bad_use_exit((T35*)(r10system_tools()),((T0*)ms10_2650));
  1471. }
  1472. /*FI]*/
  1473. r28search_for_verbose_flag((T28*)(oBC11echo));
  1474. _arg=1;
  1475. while (!((_arg)>(/*(IRF4.9argument_count*/((T23*)(r10command_arguments()))->_upper/*8*//*)*/))) {
  1476. _str=r10argument(_arg);
  1477. /*[IF*/
  1478. if(r7is_equal((T7*)(((T0*)ms12_10392)),_str)){
  1479. }
  1480. else{
  1481. /*[IF*/
  1482. if(r7has_suffix(((T7*)_str),((T0*)ms11_300))){
  1483. /*[IRF3.6remove_suffix*/{T7* C1=((T7*)_str);
  1484. T0* b1=((T0*)ms11_300);
  1485. r7remove_last(C1,(((T7*)b1))->_count/*4*/);
  1486. }/*]*/
  1487. }
  1488.  else if(r7has_suffix(((T7*)_str),r35make_suffix((T35*)(r10system_tools())))){
  1489. /*[IRF3.6remove_suffix*/{T7* C1=((T7*)_str);
  1490. T0* b1=r35make_suffix((T35*)(r10system_tools()));
  1491. r7remove_last(C1,(((T7*)b1))->_count/*4*/);
  1492. }/*]*/
  1493. }
  1494. /*FI]*/
  1495. r38compute_root_class((T38*)(oBC11run_control),_str);
  1496. r10h_c_d_removing(_str);
  1497. r7to_upper(((T7*)_str));
  1498. r10h_c_d_removing(_str);
  1499. r7to_lower(((T7*)_str));
  1500. r10h_c_d_removing(_str);
  1501. _str=r35remove_make_script((T35*)(r10system_tools()));
  1502. _str=r7twin((T7*)(((T38*)(oBC11run_control))->_root_class/*0*/));
  1503. r10h_c_d_removing(_str);
  1504. r7to_lower(((T7*)_str));
  1505. r10h_c_d_removing(_str);
  1506. }
  1507. /*FI]*/
  1508. _arg=(_arg)+(1);
  1509. }
  1510. }/*]*/
  1511. }
  1512. exit(0);
  1513. }
  1514. T7*ms11_300;
  1515. T7*ms11_306;
  1516. T7*ms28_25494;
  1517. T7*ms11_583550;
  1518. T7*ms12_166;
  1519. T7*ms35_132226;
  1520. T7*ms35_1468;
  1521. T7*ms35_8721;
  1522. T7*ms35_9331;
  1523. T7*ms35_303;
  1524. T7*ms35_966;
  1525. T7*ms35_756;
  1526. T7*ms35_1116;
  1527. T7*ms35_1356;
  1528. T7*ms35_1336;
  1529. T7*ms35_12951;
  1530. T7*ms11_1632;
  1531. T7*ms12_957;
  1532. T7*ms35_226958;
  1533. T7*ms35_32565;
  1534. T7*ms35_10175;
  1535. T7*ms28_72891;
  1536. T7*ms10_2650;
  1537. T7*ms35_1084;
  1538. T7*ms28_26523;
  1539. T7*ms12_3810;
  1540. T7*ms12_11640;
  1541. T7*ms35_654;
  1542. T7*ms12_10392;
  1543. T7*ms35_720532;
  1544. T7*ms35_1072;
  1545. T7*ms35_8302;
  1546. T7*ms12_288;
  1547. T7*ms12_18788;
  1548. T7*ms12_13428;
  1549. T7*ms35_2470;
  1550. T7*ms35_46940;
  1551. T7*ms35_39440;
  1552. T7*ms35_26690;
  1553. T7*ms35_38940;
  1554. T7*ms35_20300;
  1555. T7*ms28_8760;
  1556. T7*ms35_2375;
  1557. T7*ms35_23364;
  1558. T7*ms35_708;
  1559. T7*ms35_44196;
  1560. T7*ms12_1071;
  1561. T7*ms35_852461;
  1562.  
  1563.  
  1564. void se_msi1(void){
  1565. ms11_300=se_ms(2,".e");
  1566. ms11_306=se_ms(2,".h");
  1567. ms28_25494=se_ms(21,"Reading one word in \"");
  1568. ms11_583550=se_ms(110,"..............................................................................................................");
  1569. ms12_166=se_ms(2,"\".");
  1570. ms35_132226=se_ms(34,"/usr/lib/SmallEiffel/sys/system.se");
  1571. ms35_1468=se_ms(4,".bat");
  1572. ms35_8721=se_ms(9,"o_suffix.");
  1573. ms35_9331=se_ms(7,"Windows");
  1574. ms35_303=se_ms(3,"\'.\n");
  1575. ms35_966=se_ms(3,"man");
  1576. ms35_756=se_ms(3,"VMS");
  1577. ms35_1116=se_ms(4,".COM");
  1578. ms35_1356=se_ms(4,"BeOS");
  1579. ms35_1336=se_ms(4,"UNIX");
  1580. ms35_12951=se_ms(9,"Macintosh");
  1581. ms11_1632=se_ms(4,".txt");
  1582. ms12_957=se_ms(3,"bin");
  1583. ms35_226958=se_ms(74,"System environment variable \"SmallEiffel\" not set.\nTrying default value: \"");
  1584. ms35_32565=se_ms(39,"\"Hope this is a Macintosh like system.\n");
  1585. ms35_10175=se_ms(11,"System is \"");
  1586. ms28_72891=se_ms(39,"Unexpected end_of_input while reading \"");
  1587. ms10_2650=se_ms(5,"clean");
  1588. ms35_1084=se_ms(4,".BAT");
  1589. ms28_26523=se_ms(21,"Trying to read file \"");
  1590. ms12_3810=se_ms(6,"File \"");
  1591. ms12_11640=se_ms(12,"\" not found.");
  1592. ms35_654=se_ms(3,"OS2");
  1593. ms12_10392=se_ms(8,"-verbose");
  1594. ms35_720532=se_ms(244,"Unable to find file \"system.se\".\nPlease, set the environment variable \"SmallEiffel\" with the appropriate absolute path to this file.\nExample for Unix: \"/usr/lib/SmallEiffel/sys/system.se\"\nExample for DOS/Windows: \"C:\\SmallEiffel\\sys\\system.se\"\n");
  1595. ms35_1072=se_ms(4,".CMD");
  1596. ms35_8302=se_ms(14,"\"Last chance.\n");
  1597. ms12_288=se_ms(3,"\".\n");
  1598. ms12_18788=se_ms(11,"SmallEiffel");
  1599. ms12_13428=se_ms(9,"system.se");
  1600. ms35_2470=se_ms(5,"Amiga");
  1601. ms35_46940=se_ms(20,"Bad use of command `");
  1602. ms35_39440=se_ms(29,"See docmentation in file:\n   ");
  1603. ms35_26690=se_ms(34,"\"Hope this is a Unix like system.\n");
  1604. ms35_38940=se_ms(44,"\"Hope this is a DOS or Windows like system.\n");
  1605. ms35_20300=se_ms(28,"\"Hope this is a VMS system.\n");
  1606. ms28_8760=se_ms(10,"Removing \"");
  1607. ms35_2375=se_ms(5,".make");
  1608. ms35_23364=se_ms(36,"\".\nCurrently handled system names :\n");
  1609. ms35_708=se_ms(3,"DOS");
  1610. ms35_44196=se_ms(29,"Unknown system name in file\n\"");
  1611. ms12_1071=se_ms(3,"sys");
  1612. ms35_852461=se_ms(269,"You should update the value of the \"SmallEiffel\" system environment variable.\nSince release -0.79, the \"SmallEiffel\" system environment variable must be the absolute path of the \"system.se\" file.\nFor example \"/usr/lib/SmallEiffel/sys/system.se\" under Unix like system.\n");
  1613. }
  1614.  
  1615.  
  1616. void*se_ma36(int argc,...){
  1617. T36*m;
  1618. va_list pa;
  1619. T0**s;
  1620. m=malloc(sizeof(*m));
  1621. *m=M36;
  1622. if(argc){
  1623. s=malloc(argc*sizeof(*s));
  1624. m->_storage=s;
  1625. m->_capacity=argc;
  1626. m->_lower=1;
  1627. m->_upper=argc;
  1628. va_start(pa,argc);
  1629. while(argc--){
  1630. *(s++)=((void*)(va_arg(pa,char*)));
  1631. }
  1632. va_end(pa);
  1633. }
  1634. else{
  1635. m->_storage=NULL;
  1636. m->_capacity=0;
  1637. m->_lower=1;
  1638. m->_upper=0;
  1639. }
  1640. return m;}
  1641.  
  1642.